import mlflow
import pandas as pd

def generate_recommendations_with_comparision(
    experiment_ids,
    aggregation_function="common_features",
    main_note="sizes_acts",
    note_to_compare="sizes_L2_without_acts",
    group_type="sim"
):
    all_rows = []

    for exp_id in experiment_ids:
        runs = mlflow.search_runs(
            experiment_ids=[exp_id],
            output_format="list"
        )

        for run in runs:
            note = run.data.params.get("note")
            fusion = run.data.params.get("SAE_fusion_strategy")
            group = run.data.params.get("group_type")

            if fusion != aggregation_function or group != group_type:
                continue

            dataset = run.data.params.get("dataset", f"Exp-{exp_id}")
            dim = int(run.data.params.get("embedding_dim", 0))
            topk = int(run.data.params.get("top_k", 0))

            row_key = (dataset, dim, topk)
            model_type = "main" if note == main_note else "compare" if note == note_to_compare else None
            if not model_type:
                continue

            metrics = {
                ("G/mean", model_type): run.data.metrics.get("CommonItemsNDCG20/median"),
                ("U/mean", model_type): run.data.metrics.get("NDCG20/mean"),
                ("U/min", model_type): run.data.metrics.get("NDCG20/min"),
                ("Pop", model_type): run.data.metrics.get("Popularity/mean"),
            }

            all_rows.append((row_key, metrics))

    # Combine metrics into a dictionary
    records = {}
    for key, metrics in all_rows:
        if key not in records:
            records[key] = {}
        records[key].update(metrics)

    df = pd.DataFrame.from_dict(records, orient="index")
    df.index.names = ["Dataset", "Dimensions", "TopK"]

    # Calculate % differences
    result_cols = []
    for metric in sorted(set(k[0] for k in df.columns)):
        main_col = (metric, "main")
        compare_col = (metric, "compare")
        percent_col = (metric, "% change")

        if main_col in df.columns and compare_col in df.columns:
            df[percent_col] = ((df[main_col] - df[compare_col]) / df[compare_col].abs()) * 100
            result_cols.extend([main_col, percent_col, compare_col])
        elif main_col in df.columns:
            result_cols.append(main_col)

    # Keep only main and percent change columns, sort them by metric
    df = df[result_cols]
    df = df.round(2)
    df = df.sort_index(axis=1, level=0).sort_values(by=["Dataset", "Dimensions", "TopK"])
    

    return df.reset_index()
import mlflow
import pandas as pd

def generate_sae_table_with_comparison(experiment_ids, main_note, note_to_compare):
    all_rows = []

    for exp_id in experiment_ids:
        runs = mlflow.search_runs(
            experiment_ids=[exp_id],
            output_format="list"
        )

        for run in runs:
            note = run.data.params.get("note")
            if note not in [main_note, note_to_compare]:
                continue

            dataset = run.data.params.get("dataset", f"Exp-{exp_id}")
            dim = int(run.data.params.get("embedding_dim", 0))
            base_factors = float(run.data.params.get("base_factors", 0.0))
            expansion_ratio = dim / base_factors if base_factors else None
            topk = int(run.data.params.get("top_k", 0))

            row_key = (dim, round(expansion_ratio, 3), topk)
            model_type = "main" if note == main_note else "compare"

            metrics = {
                (dataset, model_type, "CS"): run.data.metrics.get("CosineSim/test"),
                (dataset, model_type, "Deg"): run.data.metrics.get("NDCG20_Degradation/test"),
                (dataset, model_type, "Deads"): run.data.metrics.get("DeadNeurons/test")
            }

            all_rows.append((row_key, metrics))

    # Build DataFrame
    records = {}
    for key, metrics in all_rows:
        if key not in records:
            records[key] = {}
        records[key].update(metrics)

    df = pd.DataFrame.from_dict(records, orient="index")
    df.index.names = ["Dimensions", "Expansion Ratio", "TopK"]

    # Calculate % differences and arrange columns
    result_cols = []
    for (dataset, metric) in sorted(set((k[0], k[2]) for k in df.columns)):
        main_col = (dataset, "main", metric)
        compare_col = (dataset, "compare", metric)
        percent_col = (dataset, "% change", metric)

        if main_col in df.columns and compare_col in df.columns:
            df[percent_col] = ((df[main_col] - df[compare_col]) / df[compare_col].abs()) * 100
            result_cols.extend([main_col, percent_col, compare_col])
        elif main_col in df.columns:
            result_cols.append(main_col)

    # Finalize view: sort columns, round values
    df = df[result_cols]
    df = df.round(4)
    df = df.sort_index(axis=1, level=[0, 2]).sort_values(
        by=["Dimensions", "Expansion Ratio", "TopK"],
        ascending=[True, True, True]
    )

    return df.reset_index()

Zmena v rekonstruction loss

Sparse Autoencodedry se nemuseji trenovat pouze na klasicke L2 loss, ale muzeme zvolit jine. Co se ukazalo, jako docela funkcni pro doporucovaci systemy, bylo pouzit cosine similarity jako loss. Podle papery to davalo opravdu dobre vysledky.

Table of reconstrictions metrics

comparision of the L2 loss (compare) and cosine similarity (main) reconstruction loss on the ELSA dataset.

  • CS - Cosine Similarity of original and reconstructed embeddings
  • Deads - Percentage of dead neurons in the sparse embedding
  • Deg - Degradation of NDCG between ELSA model and ELSA + Autoencoder
sae_experiments = ['657713966175362303', '852893065079987597']

table = generate_sae_table_with_comparison(
    sae_experiments,
    main_note="sizes_Cosine",
    note_to_compare="sizes_L2",
)
table
Dimensions Expansion Ratio TopK LastFM1k MovieLens
% change compare main % change compare main % change ... main % change compare main % change compare main % change compare main
CS CS CS Deads Deads Deads Deg ... Deg CS CS CS Deads Deads Deads Deg Deg Deg
0 1024 4.0 32 0.0135 0.9026 0.9027 -10.4348 0.2246 0.2012 -37.7869 ... -0.0184 -0.1005 0.9472 0.9462 NaN 0.0000 0.0 -0.3955 -0.0119 -0.0120
1 1024 4.0 64 -0.3697 0.9256 0.9221 -20.0000 0.0830 0.0664 -176.6462 ... -0.0182 -0.4022 0.9698 0.9659 NaN 0.0000 0.0 4.4958 -0.0057 -0.0054
2 1024 4.0 128 -1.5272 0.9489 0.9344 -53.8462 0.0127 0.0059 -162.6340 ... -0.0196 -1.1890 0.9914 0.9796 NaN 0.0000 0.0 -71.8368 -0.0023 -0.0039
3 2048 8.0 32 0.8817 0.9024 0.9104 -31.7431 0.5322 0.3633 -802.4991 ... -0.0183 -0.2358 0.9427 0.9405 NaN 0.0000 0.0 -5.5714 -0.0144 -0.0152
4 2048 8.0 64 0.7415 0.9246 0.9315 -22.7626 0.2510 0.1938 -11.2530 ... -0.0168 -0.6032 0.9658 0.9600 NaN 0.0000 0.0 -17.2345 -0.0070 -0.0082
5 2048 8.0 128 -0.2503 0.9504 0.9481 -19.1919 0.0967 0.0781 43.3454 ... -0.0106 -1.1276 0.9867 0.9756 NaN 0.0000 0.0 -91.6178 -0.0025 -0.0047
6 4096 16.0 32 1.5373 0.8978 0.9116 -26.1170 0.7432 0.5491 -688.0801 ... -0.0180 -0.4869 0.9410 0.9364 -100.0 0.0068 0.0 -13.3860 -0.0153 -0.0174
7 4096 16.0 64 1.4121 0.9237 0.9367 -32.8203 0.5393 0.3623 -5849.2522 ... -0.0133 -0.6854 0.9605 0.9539 NaN 0.0000 0.0 -12.9190 -0.0093 -0.0105
8 4096 16.0 128 0.2552 0.9496 0.9520 -24.6575 0.3030 0.2283 -117.7475 ... -0.0184 -0.9140 0.9780 0.9691 NaN 0.0000 0.0 -51.6352 -0.0045 -0.0068

9 rows × 21 columns

Means of above table

table.mean()
Dimensions                          2389.333333
Expansion Ratio                        9.333333
TopK                                  74.666667
LastFM1k         % change  CS          0.299344
                 compare   CS          0.925067
                 main      CS          0.927722
                 % change  Deads     -26.841489
                 compare   Deads       0.309522
                 main      Deads       0.227600
                 % change  Deg      -866.950400
                 compare   Deg        -0.008211
                 main      Deg        -0.016844
MovieLens        % change  CS         -0.638289
                 compare   CS          0.964789
                 main      CS          0.958578
                 % change  Deads    -100.000000
                 compare   Deads       0.000756
                 main      Deads       0.000000
                 % change  Deg       -28.900044
                 compare   Deg        -0.008100
                 main      Deg        -0.009344
dtype: float64

SAE group recommendation performance for common features aggregation function and similar groups

Comparing the L2 variant (compare) with the cosine similarity variant (main)

experiments = ['523100174176986081', '333391697323445885']
table = generate_recommendations_with_comparision(
    experiments,
    aggregation_function="common_features",
    main_note="sizes_Cosine_without_acts",
    note_to_compare="sizes_L2_without_acts",
    group_type="sim",
)
table
Dataset Dimensions TopK G/mean Pop U/mean U/min
% change compare main % change compare main % change compare main % change compare main
0 LastFM1k 1024 32 8.11 0.59 0.64 -1.51 0.62 0.61 0.22 0.79 0.80 -2.09 0.63 0.62
1 LastFM1k 1024 64 1.90 0.58 0.59 0.07 0.61 0.61 -1.19 0.80 0.79 -4.65 0.63 0.60
2 LastFM1k 1024 128 -11.80 0.60 0.53 0.08 0.60 0.60 -1.59 0.80 0.79 -1.39 0.63 0.62
3 LastFM1k 2048 32 -7.01 0.59 0.55 3.35 0.64 0.67 0.03 0.79 0.79 -0.46 0.62 0.61
4 LastFM1k 2048 64 -0.74 0.60 0.59 2.35 0.62 0.63 -2.00 0.81 0.79 -4.10 0.64 0.61
5 LastFM1k 2048 128 10.38 0.61 0.67 0.55 0.61 0.62 -1.05 0.81 0.80 0.56 0.61 0.62
6 LastFM1k 4096 32 12.87 0.57 0.65 -3.22 0.66 0.63 2.12 0.78 0.80 -0.11 0.63 0.62
7 LastFM1k 4096 64 31.31 0.52 0.69 7.10 0.63 0.67 -2.10 0.81 0.79 -1.93 0.62 0.61
8 LastFM1k 4096 128 -2.79 0.59 0.58 4.59 0.62 0.64 -2.50 0.81 0.79 -1.29 0.63 0.62
9 MovieLens 1024 32 -14.22 0.58 0.50 -5.89 0.52 0.49 0.09 0.64 0.64 -2.94 0.52 0.50
10 MovieLens 1024 64 22.13 0.54 0.66 -8.08 0.50 0.46 0.53 0.65 0.66 0.43 0.53 0.53
11 MovieLens 1024 128 -0.40 0.65 0.65 1.98 0.49 0.50 -0.31 0.67 0.67 9.85 0.51 0.56
12 MovieLens 2048 32 -47.37 0.68 0.36 -8.55 0.49 0.45 -6.13 0.66 0.61 -16.22 0.54 0.45
13 MovieLens 2048 64 8.41 0.45 0.49 -2.29 0.48 0.47 -2.58 0.65 0.63 -8.22 0.53 0.49
14 MovieLens 2048 128 15.85 0.51 0.59 -2.03 0.48 0.47 -2.50 0.67 0.65 2.63 0.53 0.54
15 MovieLens 4096 32 -16.46 0.66 0.55 -0.78 0.48 0.48 -1.14 0.66 0.65 -8.17 0.55 0.50
16 MovieLens 4096 64 0.75 0.59 0.59 -6.33 0.51 0.48 -2.49 0.66 0.64 -11.85 0.53 0.47
17 MovieLens 4096 128 4.71 0.56 0.59 -1.73 0.49 0.48 -0.20 0.65 0.65 0.69 0.51 0.52
table.groupby(["Dataset"]).mean()
Dimensions TopK G/mean Pop U/mean U/min
% change compare main % change compare main % change compare main % change compare main
Dataset
LastFM1k 2389.333333 74.666667 4.692222 0.583333 0.610000 1.484444 0.623333 0.631111 -0.895556 0.800000 0.793333 -1.717778 0.626667 0.614444
MovieLens 2389.333333 74.666667 -2.955556 0.580000 0.553333 -3.744444 0.493333 0.475556 -1.636667 0.656667 0.644444 -3.755556 0.527778 0.506667
table.groupby(["Dataset"]).std()
Dimensions TopK G/mean Pop U/mean U/min
% change compare main % change compare main % change compare main % change compare main
Dataset
LastFM1k 1354.624671 42.332021 12.853204 0.026458 0.055000 3.188911 0.018028 0.025221 1.459119 0.01118 0.005000 1.735733 0.008660 0.007265
MovieLens 1354.624671 42.332021 20.835766 0.075166 0.092871 3.602930 0.014142 0.015092 2.070628 0.01000 0.017401 8.094245 0.013017 0.034641

SAE group recommendation performance for common features aggregation function and random groups

Comparing the L2 variant (compare) with the cosine similarity variant (main)

experiments = ['523100174176986081', '333391697323445885']
table = generate_recommendations_with_comparision(
    experiments,
    aggregation_function="common_features",
    main_note="sizes_Cosine_without_acts",
    note_to_compare="sizes_L2_without_acts",
    group_type="random",
)
table.groupby(["Dataset"]).mean()
Dimensions TopK G/mean Pop U/mean U/min
% change compare main % change compare main % change compare main % change compare main
Dataset
LastFM1k 2389.333333 74.666667 -7.473333 0.438889 0.401111 1.584444 0.663333 0.674444 -1.593333 0.740000 0.728889 -3.428889 0.535556 0.516667
MovieLens 2389.333333 74.666667 -13.103333 0.605556 0.526667 -2.054444 0.504444 0.495556 -1.542222 0.621111 0.610000 -5.000000 0.478889 0.451111

SAE group recommendation performance for common features aggregation function and divergen groups

Comparing the L2 variant (compare) with the cosine similarity variant (main)

experiments = ['523100174176986081', '333391697323445885']
table = generate_recommendations_with_comparision(
    experiments,
    aggregation_function="common_features",
    main_note="sizes_Cosine_without_acts",
    note_to_compare="sizes_L2_without_acts",
    group_type="div",
)
table
Dataset Dimensions TopK G/mean Pop U/mean U/min
% change compare main % change compare main % change compare main % change compare main
0 LastFM1k 1024 32 -1.94 0.44 0.43 -0.30 0.60 0.60 -4.19 0.65 0.62 -12.49 0.40 0.35
1 LastFM1k 1024 64 30.11 0.38 0.49 -0.16 0.54 0.54 -4.49 0.61 0.58 -7.12 0.32 0.30
2 LastFM1k 1024 128 15.82 0.29 0.34 -0.32 0.55 0.55 -3.68 0.60 0.58 -16.15 0.34 0.28
3 LastFM1k 2048 32 12.41 0.50 0.56 6.99 0.66 0.70 -0.15 0.68 0.68 -7.70 0.43 0.40
4 LastFM1k 2048 64 49.36 0.34 0.51 3.04 0.61 0.63 -4.01 0.65 0.62 -14.69 0.41 0.35
5 LastFM1k 2048 128 70.61 0.30 0.51 9.05 0.58 0.63 -1.88 0.63 0.61 -0.51 0.34 0.34
6 LastFM1k 4096 32 -19.33 0.56 0.45 0.96 0.67 0.68 -0.03 0.68 0.68 -8.08 0.45 0.42
7 LastFM1k 4096 64 -2.15 0.53 0.51 9.94 0.64 0.70 1.15 0.67 0.67 -9.57 0.43 0.39
8 LastFM1k 4096 128 -28.00 0.46 0.33 6.78 0.60 0.65 1.18 0.65 0.65 1.86 0.39 0.40
9 MovieLens 1024 32 inf 0.00 0.31 49.63 0.18 0.28 15.94 0.35 0.41 87.68 0.12 0.22
10 MovieLens 1024 64 -32.11 0.12 0.08 -17.08 0.28 0.23 -10.37 0.48 0.43 -26.08 0.22 0.16
11 MovieLens 1024 128 -68.80 0.38 0.12 24.24 0.26 0.32 16.33 0.46 0.53 10.49 0.25 0.28
12 MovieLens 2048 32 NaN 0.00 0.00 22.52 0.21 0.26 -23.62 0.43 0.33 -42.61 0.21 0.12
13 MovieLens 2048 64 -62.84 0.20 0.07 -11.92 0.22 0.20 -11.43 0.40 0.35 -15.07 0.12 0.10
14 MovieLens 2048 128 -7.49 0.08 0.08 -12.15 0.31 0.27 -1.28 0.48 0.48 -0.76 0.26 0.26
15 MovieLens 4096 32 inf 0.00 0.09 36.13 0.29 0.40 2.00 0.51 0.52 13.27 0.31 0.35
16 MovieLens 4096 64 inf 0.00 0.23 25.94 0.25 0.31 -4.56 0.42 0.40 -10.76 0.23 0.20
17 MovieLens 4096 128 -74.65 0.38 0.10 -6.40 0.35 0.33 -5.42 0.48 0.46 7.88 0.24 0.26
table.groupby(["Dataset"]).mean()
Dimensions TopK G/mean Pop U/mean U/min
% change compare main % change compare main % change compare main % change compare main
Dataset
LastFM1k 2389.333333 74.666667 14.098889 0.422222 0.458889 3.997778 0.605556 0.631111 -1.788889 0.646667 0.632222 -8.272222 0.390000 0.358889
MovieLens 2389.333333 74.666667 inf 0.128889 0.120000 12.323333 0.261111 0.288889 -2.490000 0.445556 0.434444 2.671111 0.217778 0.216667

SAE group recommendation performance for average aggregation function and similar groups

Comparing the L2 variant (compare) with the cosine similarity variant (main)

experiments = ['523100174176986081', '333391697323445885']
generate_recommendations_with_comparision(
    experiments,
    aggregation_function="average",
    main_note="sizes_Cosine_with_acts",
    note_to_compare="sizes_L2_with_acts",
    group_type="sim",
)
Dataset Dimensions TopK G/mean Pop U/mean U/min
% change compare main % change compare main % change compare main % change compare main
0 LastFM1k 1024 32 18.74 0.52 0.62 -2.24 0.60 0.59 -0.59 0.81 0.80 3.43 0.64 0.66
1 LastFM1k 1024 64 0.54 0.56 0.56 -3.51 0.61 0.59 -0.54 0.81 0.81 -1.74 0.65 0.64
2 LastFM1k 1024 128 0.25 0.57 0.57 -3.20 0.61 0.59 -0.38 0.81 0.81 -3.58 0.65 0.63
3 LastFM1k 2048 32 21.15 0.58 0.71 -2.64 0.62 0.60 1.88 0.82 0.83 6.20 0.64 0.68
4 LastFM1k 2048 64 23.06 0.58 0.71 -1.64 0.61 0.60 -0.12 0.82 0.82 2.41 0.67 0.68
5 LastFM1k 2048 128 7.23 0.65 0.69 1.56 0.60 0.61 0.57 0.82 0.82 -0.05 0.67 0.67
6 LastFM1k 4096 32 14.17 0.59 0.67 -6.78 0.61 0.57 1.33 0.81 0.82 6.25 0.65 0.69
7 LastFM1k 4096 64 21.96 0.58 0.71 -1.29 0.61 0.60 1.07 0.82 0.83 5.70 0.65 0.69
8 LastFM1k 4096 128 -2.55 0.62 0.60 -1.84 0.61 0.60 0.72 0.82 0.82 2.68 0.64 0.66
9 MovieLens 1024 32 13.53 0.59 0.67 -6.49 0.53 0.50 0.33 0.69 0.69 -2.09 0.58 0.57
10 MovieLens 1024 64 -9.81 0.74 0.67 -2.18 0.54 0.53 -0.55 0.70 0.69 0.56 0.58 0.58
11 MovieLens 1024 128 3.07 0.66 0.68 0.52 0.53 0.54 -0.05 0.69 0.69 -0.21 0.58 0.57
12 MovieLens 2048 32 -11.15 0.66 0.58 -7.44 0.54 0.50 -0.09 0.69 0.69 -2.34 0.58 0.57
13 MovieLens 2048 64 -1.07 0.67 0.66 -1.43 0.53 0.53 -0.52 0.69 0.69 -1.48 0.58 0.57
14 MovieLens 2048 128 -7.85 0.70 0.65 1.94 0.53 0.54 -0.70 0.69 0.69 -0.25 0.57 0.57
15 MovieLens 4096 32 12.77 0.57 0.65 -6.46 0.54 0.51 0.07 0.68 0.68 1.37 0.56 0.57
16 MovieLens 4096 64 -26.16 0.69 0.51 -4.42 0.54 0.52 0.41 0.69 0.69 -2.53 0.59 0.57
17 MovieLens 4096 128 -18.62 0.68 0.56 -0.84 0.53 0.53 0.00 0.69 0.69 -3.06 0.58 0.57

SAE group recommendation performance for average aggregation function and random groups

Comparing the L2 variant (compare) with the cosine similarity variant (main)

experiments = ['523100174176986081', '333391697323445885']
generate_recommendations_with_comparision(
    experiments,
    aggregation_function="average",
    main_note="sizes_Cosine_with_acts",
    note_to_compare="sizes_L2_with_acts",
    group_type="random",
)
Dataset Dimensions TopK G/mean Pop U/mean U/min
% change compare main % change compare main % change compare main % change compare main
0 LastFM1k 1024 32 6.58 0.40 0.42 -4.49 0.66 0.63 0.25 0.75 0.75 1.28 0.56 0.56
1 LastFM1k 1024 64 -13.11 0.43 0.37 -3.33 0.66 0.64 -1.49 0.75 0.74 -4.14 0.55 0.53
2 LastFM1k 1024 128 -13.67 0.36 0.31 -5.05 0.66 0.62 -2.97 0.75 0.73 -1.62 0.56 0.55
3 LastFM1k 2048 32 -12.22 0.50 0.44 -0.71 0.66 0.66 1.50 0.76 0.78 4.66 0.59 0.62
4 LastFM1k 2048 64 6.74 0.42 0.45 -0.98 0.66 0.66 2.01 0.76 0.77 1.99 0.58 0.59
5 LastFM1k 2048 128 -20.85 0.50 0.40 -1.13 0.66 0.65 -0.22 0.77 0.76 -0.13 0.58 0.58
6 LastFM1k 4096 32 4.33 0.36 0.38 -6.09 0.67 0.63 1.67 0.76 0.78 5.94 0.57 0.60
7 LastFM1k 4096 64 -0.74 0.36 0.36 -0.72 0.66 0.65 0.94 0.75 0.76 1.14 0.58 0.59
8 LastFM1k 4096 128 5.57 0.35 0.37 -0.98 0.66 0.65 1.40 0.76 0.77 1.88 0.56 0.57
9 MovieLens 1024 32 -2.26 0.59 0.57 -7.80 0.57 0.53 -2.35 0.69 0.67 -7.39 0.56 0.51
10 MovieLens 1024 64 -1.19 0.61 0.60 -1.41 0.57 0.56 -0.66 0.69 0.69 -0.98 0.55 0.55
11 MovieLens 1024 128 13.88 0.54 0.62 0.30 0.57 0.57 0.29 0.69 0.69 0.88 0.54 0.55
12 MovieLens 2048 32 -6.81 0.63 0.58 -6.32 0.57 0.54 -2.54 0.69 0.67 -5.89 0.55 0.51
13 MovieLens 2048 64 23.29 0.55 0.68 -0.82 0.58 0.57 -0.16 0.69 0.69 1.05 0.55 0.55
14 MovieLens 2048 128 -0.35 0.62 0.62 0.87 0.57 0.58 0.07 0.69 0.69 -0.66 0.56 0.55
15 MovieLens 4096 32 -9.77 0.57 0.51 -6.08 0.58 0.54 -2.97 0.69 0.67 -1.84 0.54 0.53
16 MovieLens 4096 64 24.47 0.54 0.67 -4.39 0.57 0.55 -2.62 0.69 0.67 1.01 0.53 0.54
17 MovieLens 4096 128 -0.25 0.62 0.61 1.56 0.56 0.57 -0.74 0.69 0.68 1.38 0.54 0.54

SAE group recommendation performance for average aggregation function and random groups

Comparing the L2 variant (compare) with the cosine similarity variant (main)

experiments = ['523100174176986081', '333391697323445885']
generate_recommendations_with_comparision(
    experiments,
    aggregation_function="average",
    main_note="sizes_Cosine_with_acts",
    note_to_compare="sizes_L2_with_acts",
    group_type="div",
)
Dataset Dimensions TopK G/mean Pop U/mean U/min
% change compare main % change compare main % change compare main % change compare main
0 LastFM1k 1024 32 -7.44 0.50 0.47 -13.21 0.63 0.55 -6.09 0.67 0.63 -6.14 0.46 0.43
1 LastFM1k 1024 64 -38.73 0.46 0.28 -11.76 0.61 0.54 -6.01 0.66 0.62 -19.40 0.44 0.36
2 LastFM1k 1024 128 -11.47 0.41 0.37 -16.07 0.60 0.50 -9.63 0.66 0.60 -19.77 0.42 0.34
3 LastFM1k 2048 32 20.99 0.43 0.53 -4.23 0.62 0.59 -0.27 0.68 0.68 2.91 0.48 0.50
4 LastFM1k 2048 64 -8.27 0.45 0.41 -3.94 0.61 0.59 -1.40 0.67 0.66 2.43 0.46 0.47
5 LastFM1k 2048 128 2.81 0.47 0.48 -3.50 0.61 0.59 -1.68 0.66 0.65 4.68 0.44 0.46
6 LastFM1k 4096 32 -26.41 0.52 0.38 -11.21 0.62 0.55 -0.77 0.68 0.67 -1.04 0.47 0.46
7 LastFM1k 4096 64 12.58 0.47 0.52 -0.93 0.61 0.60 -0.35 0.68 0.68 -0.41 0.46 0.46
8 LastFM1k 4096 128 4.67 0.45 0.47 -4.21 0.61 0.58 -1.28 0.66 0.65 -1.04 0.45 0.44
9 MovieLens 1024 32 -36.91 0.15 0.10 -35.73 0.43 0.27 -16.38 0.62 0.52 -27.83 0.45 0.32
10 MovieLens 1024 64 0.00 0.13 0.13 -9.56 0.42 0.38 -4.12 0.62 0.60 -8.25 0.46 0.43
11 MovieLens 1024 128 -7.92 0.12 0.11 -10.21 0.42 0.38 -4.52 0.63 0.60 -4.21 0.44 0.42
12 MovieLens 2048 32 -42.19 0.15 0.09 -45.71 0.44 0.24 -21.89 0.63 0.49 -35.32 0.43 0.28
13 MovieLens 2048 64 0.00 0.12 0.12 -22.09 0.43 0.34 -10.39 0.62 0.56 -14.93 0.44 0.37
14 MovieLens 2048 128 16.10 0.13 0.15 -2.36 0.40 0.39 -0.54 0.61 0.60 -1.50 0.42 0.41
15 MovieLens 4096 32 40.37 0.11 0.15 -47.08 0.45 0.24 -22.97 0.64 0.49 -41.66 0.47 0.28
16 MovieLens 4096 64 -28.06 0.10 0.07 -36.17 0.45 0.28 -17.50 0.63 0.52 -32.75 0.46 0.31
17 MovieLens 4096 128 16.10 0.13 0.15 -23.98 0.40 0.30 -12.23 0.62 0.55 -24.51 0.42 0.32